Processing and rendering media (e.g., audio or video) is a very popular application on computers, cellular phones, and embedded computing devices. Many different software applications exist to perform the media processing and rendering, some specific to one type of computing device and some which exist on multiple platforms. Underlying the software is typically a media framework application programming interface (API), which provides access to the media capabilities of the computing device. A media framework additionally has an associated set of functionality that may be used with the framework to build new media applications, referred to variously as framework components or plug-ins. These components may be authored by the framework authors and included along with the framework, or they may be authored by a third party and distributed separately. There exist several media frameworks, e.g., DirectShow, OpenMAX, GStreamer, QuickTime, Helix DNA, Xine, etc. Each framework is available for a different set of computing platforms and each has different behaviors, leading to different advantages and disadvantages for each of the media frameworks. Additionally, each media framework has a different set of components; some components are available for one media framework and not for another. There are many different reasons why one media framework might be chosen over another, including availability on a desired computing platform, cross-platform capability, availability of specific components, optimization of a particular functionality, or the developer's own particular preference. A software developer trying to move to a new media framework from one he is used to will likely have to learn new framework behaviors, as well as learn to use new framework components and to work without others, increasing development time and complexity.